\subsection{文本预处理}
\subsubsection{Tokenizer}\label{tokenizer}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{keras.preprocessing.text.Tokenizer(num_words}\OperatorTok{=}\VariableTok{None}\NormalTok{, }
\NormalTok{                                   filters}\OperatorTok{=}\StringTok{'!"#$%&()*+,-./:;<=>?@[\textbackslash{}]^_`\{|\}~'}\NormalTok{, }
\NormalTok{                                   lower}\OperatorTok{=}\VariableTok{True}\NormalTok{, split}\OperatorTok{=}\StringTok{' '}\NormalTok{, }
\NormalTok{                                   char_level}\OperatorTok{=}\VariableTok{False}\NormalTok{, }
\NormalTok{                                   oov_token}\OperatorTok{=}\VariableTok{None}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

文本标记实用类。

该类允许使用两种方法向量化一个文本语料库：
将每个文本转化为一个整数序列（每个整数都是词典中标记的索引）；
或者将其转化为一个向量，其中每个标记的系数可以是二进制值、词频、TF-IDF权重等。

\textbf{参数}

\begin{itemize}
\tightlist
\item
  num\_words: 需要保留的最大词数，基于词频。只有最常出现的
  \texttt{num\_words} 词会被保留。
\item
  filters:
  一个字符串，其中每个元素是一个将从文本中过滤掉的字符。默认值是所有标点符号，加上制表符和换行符，减去
  \texttt{\textquotesingle{}} 字符。
\item
  lower: 布尔值。是否将文本转换为小写。
\item
  split: 字符串。按该字符串切割文本。
\item
  char\_level: 如果为 True，则每个字符都将被视为标记。
\item
  oov\_token: 如果给出，它将被添加到 word\_index 中，并用于在
  \texttt{text\_to\_sequence} 调用期间替换词汇表外的单词。
\end{itemize}

默认情况下，删除所有标点符号，将文本转换为空格分隔的单词序列（单词可能包含
\texttt{\textquotesingle{}} 字符）。
这些序列然后被分割成标记列表。然后它们将被索引或向量化。

\texttt{0} 是不会被分配给任何单词的保留索引。

\hypertarget{hashing_trick}{%
\subsubsection{hashing\_trick}\label{hashing_trick}}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{keras.preprocessing.text.hashing_trick(text, n, }
\NormalTok{                                       hash_function}\OperatorTok{=}\VariableTok{None}\NormalTok{, }
\NormalTok{                                       filters}\OperatorTok{=}\StringTok{'!"#$%&()*+,-./:;<=>?@[\textbackslash{}]^_`\{|\}~'}\NormalTok{, }
\NormalTok{                                       lower}\OperatorTok{=}\VariableTok{True}\NormalTok{, split}\OperatorTok{=}\StringTok{' '}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

将文本转换为固定大小散列空间中的索引序列。

\textbf{参数}

\begin{itemize}
\tightlist
\item
  text: 输入文本（字符串）。
\item
  n: 散列空间维度。
\item
  hash\_function: 默认为 python 散列函数，可以是 `md5'
  或任意接受输入字符串并返回整数的函数。注意 `hash'
  不是稳定的散列函数，所以它在不同的运行中不一致，而 `md5'
  是一个稳定的散列函数。
\item
  filters:
  要过滤的字符列表（或连接），如标点符号。默认：\texttt{!"\#\$\%\&()*+,-./:;\textless{}=\textgreater{}?@{[}\textbackslash{}{]}\^{}\_\{\textbar{}\}\textasciitilde{}}，包含基本标点符号，制表符和换行符。
\item
  lower: 布尔值。是否将文本转换为小写。
\item
  split: 字符串。按该字符串切割文本。
\end{itemize}

\textbf{返回}

整数词索引列表（唯一性无法保证）。

\texttt{0} 是不会被分配给任何单词的保留索引。

由于哈希函数可能发生冲突，可能会将两个或更多字分配给同一索引。
碰撞的概率与散列空间的维度和不同对象的数量有关。

\hypertarget{one_hot}{%
\subsubsection{one\_hot}\label{one_hot}}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{keras.preprocessing.text.one_hot(text, n, }
\NormalTok{                                 filters}\OperatorTok{=}\StringTok{'!"#$%&()*+,-./:;<=>?@[\textbackslash{}]^_`\{|\}~'}\NormalTok{, }
\NormalTok{                                 lower}\OperatorTok{=}\VariableTok{True}\NormalTok{, split}\OperatorTok{=}\StringTok{' '}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

One-hot 将文本编码为大小为 n 的单词索引列表。

\textbf{参数}

\begin{itemize}
\tightlist
\item
  text: 输入文本（字符串）。
\item
  n: 整数。词汇表尺寸。
\item
  filters:
  要过滤的字符列表（或连接），如标点符号。默认：\texttt{!"\#\$\%\&()*+,-./:;\textless{}=\textgreater{}?@{[}\textbackslash{}{]}\^{}\_\{\textbar{}\}\textasciitilde{}}，包含基本标点符号，制表符和换行符。
\item
  lower: 布尔值。是否将文本转换为小写。
\item
  split: 字符串。按该字符串切割文本。
\end{itemize}

\textbf{返回}

{[}1, n{]} 之间的整数列表。每个整数编码一个词（唯一性无法保证）。

\hypertarget{text_to_word_sequence}{%
\subsubsection{text\_to\_word\_sequence}\label{text_to_word_sequence}}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{keras.preprocessing.text.text_to_word_sequence(text, }
\NormalTok{                                               filters}\OperatorTok{=}\StringTok{'!"#$%&()*+,-./:;<=>?@[\textbackslash{}]^_`\{|\}~'}\NormalTok{, }
\NormalTok{                                               lower}\OperatorTok{=}\VariableTok{True}\NormalTok{, split}\OperatorTok{=}\StringTok{' '}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

将文本转换为单词（或标记）的序列。

\textbf{参数}

\begin{itemize}
\tightlist
\item
  text: 输入文本（字符串）。
\item
  filters:
  要过滤的字符列表（或连接），如标点符号。默认：\texttt{!"\#\$\%\&()*+,-./:;\textless{}=\textgreater{}?@{[}\textbackslash{}{]}\^{}\_\{\textbar{}\}\textasciitilde{}}，包含基本标点符号，制表符和换行符。
\item
  lower: 布尔值。是否将文本转换为小写。
\item
  split: 字符串。按该字符串切割文本。
\end{itemize}

\textbf{返回}

词或标记的列表。

\newpage
